#!/usr/bin/env node

// 简化版电调测试脚本
const { execSync } = require('child_process');

console.log("🔧 简化版电调测试");

try {
  // 初始化引脚
  execSync('gpio -g mode 13 out');
  console.log("✅ 引脚13设置为输出模式");
  
  // 电调校准序列
  console.log("\n🚀 开始电调校准...");
  
  // 1. 最大油门 (2.0ms)
  console.log("1. 发送最大油门信号 (2.0ms) - 保持3秒");
  for (let i = 0; i < 150; i++) {
    execSync('gpio -g write 13 1');
    sleep(2.0);
    execSync('gpio -g write 13 0');
    sleep(18.0);
  }
  console.log("   完成");
  
  // 等待2秒
  sleep(2000);
  
  // 2. 最小油门 (1.0ms)
  console.log("2. 发送最小油门信号 (1.0ms) - 保持3秒");
  for (let i = 0; i < 150; i++) {
    execSync('gpio -g write 13 1');
    sleep(1.0);
    execSync('gpio -g write 13 0');
    sleep(19.0);
  }
  console.log("   完成");
  
  // 等待2秒
  sleep(2000);
  
  // 3. 中性位置 (1.5ms)
  console.log("3. 发送中性信号 (1.5ms) - 保持2秒");
  for (let i = 0; i < 100; i++) {
    execSync('gpio -g write 13 1');
    sleep(1.5);
    execSync('gpio -g write 13 0');
    sleep(18.5);
  }
  console.log("   完成");
  
  console.log("\n✅ 电调校准完成!");
  
  // 测试控制
  console.log("\n🎮 测试控制信号...");
  
  // 中性
  console.log("发送中性信号...");
  for (let i = 0; i < 50; i++) {
    execSync('gpio -g write 13 1');
    sleep(1.5);
    execSync('gpio -g write 13 0');
    sleep(18.5);
  }
  
  // 前进
  console.log("发送前进信号...");
  for (let i = 0; i < 100; i++) {
    execSync('gpio -g write 13 1');
    sleep(1.7);
    execSync('gpio -g write 13 0');
    sleep(18.3);
  }
  
  // 回到中性
  console.log("回到中性信号...");
  for (let i = 0; i < 50; i++) {
    execSync('gpio -g write 13 1');
    sleep(1.5);
    execSync('gpio -g write 13 0');
    sleep(18.5);
  }
  
  console.log("\n✅ 控制测试完成!");
  
} catch (error) {
  console.error("❌ 测试失败:", error.message);
}

// 精确延时函数（毫秒）
function sleep(ms) {
  const start = Date.now();
  while (Date.now() - start < ms) {
    // 空循环等待
  }
}